clear all
capture log close   

version 13
local gruppo = 1
log  using  ./A_3_2_13Sep2020.smcl, replace

use ".../stock_survival_10sample_all_rev1_2_13Sep2020.dta", clear
								    
set more off
** split the spells into different components
sort id year
tsset id year, y
tsspell lm_status_`gruppo', end(a_end_`gruppo') seq(a_seq_`gruppo') spell(a_spell_`gruppo')
label var a_spell_`gruppo' "definition 1: spell number from the first spell onwards"
label var a_seq_`gruppo' "definition 1: duration - going from 1,2,3 etc"
label var a_end_`gruppo' "definition 1: dummy for when the spell ends"
bys id (year): gen lcensor_`gruppo'=((lm_status_`gruppo'==1 | lm_status_`gruppo'==2) & a_seq_`gruppo'==1 & a_spell_`gruppo'==1 & year==1993)
bys id (year): egen lcens_id_`gruppo'=max(lcensor_`gruppo')
bys id a_spell_`gruppo': egen lcens_spell_`gruppo'=max(lcensor_`gruppo')

*** drop last spell if unemployed and record the last spell was unemployment
bys id (year): egen numbspells_`gruppo'=max(a_spell_`gruppo')
gen lsp_un_`gruppo' = (lm_status_`gruppo'==0 & a_spell_`gruppo'==numbspells_`gruppo')
bys id (year): egen lastsp_unem_`gruppo'=max(lsp_un_`gruppo')
gen ban_`gruppo' = ( lm_status_`gruppo'==0 & a_spell_`gruppo'==numbspells_`gruppo')
drop lsp_un

** drop first spell if unemployed
replace ban_`gruppo' = 1 if lm_status_`gruppo'==0 & a_spell_`gruppo'==1
drop if ban_`gruppo'==1   

** check how many individuals have some unemployement spells between wage and/or self_empl spells
gen d=( lm_status_`gruppo'==0 & (lm_status_`gruppo'[_n-1]==1 | lm_status_`gruppo'[_n-1]==2) & id[_n-1]==id)
gen dd=( lm_status_`gruppo'==0 & (lm_status_`gruppo'[_n+1]==1 | lm_status_`gruppo'[_n+1]==2) & id[_n+1]==id)
bys id (year): egen d1=max(d)
bys id (year): egen dd1=max(dd)
*** let's drop them for the moment
replace ban_`gruppo' = 1 if dd1==1 & d1==1
drop dd d  d1    dd1 
replace ban_`gruppo' = 1 if lm_status_`gruppo'==0


*** drop people that change every or mostly every year status
drop numbspells_`gruppo'
drop  a_end_`gruppo' a_seq_`gruppo' a_spell_`gruppo'  
tsset id year, y 
tsspell lm_status_`gruppo' if ban_`gruppo' == 0, end(a_end_`gruppo') seq(a_seq_`gruppo') spell(a_spell_`gruppo')   /* new */
bys id (year): egen numbspells_`gruppo'=max(a_spell_`gruppo')    
bys id (year): gen numbobs=_N
gen drop1=((numbspells_`gruppo'==numbobs) & numbobs>=2) 
gen drop2=((numbspells_`gruppo'>=numbobs-1) & numbobs>=5)  
gen drop3=((numbspells_`gruppo'>=numbobs-2) & numbobs>=7)       
gen drop4=((numbspells_`gruppo'>=numbobs-3) & numbobs>=9)    
gen drop5=((numbspells_`gruppo'>=numbobs-4) & numbobs>=10)    
gen drop6=((numbspells_`gruppo'>=numbobs-5) & numbobs>=11)  
gen drop7=((numbspells_`gruppo'>=numbobs-6) & numbobs>=12)      
replace ban_`gruppo' = 1 if drop1 | drop2 | drop3 | drop4 | drop5 | drop6 | drop7
drop drop*
drop numbobs numbspells_`gruppo'

**gen right_censored
drop  a_end_`gruppo' a_seq_`gruppo' a_spell_`gruppo' 
tsset id year, y
tsspell lm_status_`gruppo' if ban_`gruppo' == 0, end(a_end_`gruppo') seq(a_seq_`gruppo') spell(a_spell_`gruppo')
bys id a_spell_`gruppo': egen dur_`gruppo'=max(a_seq_`gruppo')
bys id a_spell_`gruppo': gen l_dur_yr_`gruppo'=year if a_seq_`gruppo'==dur_`gruppo'
replace l_dur_yr_`gruppo'=0 if l_dur_yr_`gruppo'==.
bys id a_spell_`gruppo': egen last_dur_yr_`gruppo'=max(l_dur_yr_`gruppo')
drop l_dur_yr_`gruppo'
bys  id (a_spell_`gruppo' a_seq_`gruppo'): gen last_yr_`gruppo'=year if _n==_N
replace last_yr_`gruppo' = . if ban_`gruppo'==1
bys id: egen last_yr_smpl_`gruppo'=max(last_yr_`gruppo')
bys id a_spell_`gruppo': gen r_c_`gruppo'=(last_dur_yr_`gruppo'==last_yr_smpl_`gruppo') 

**** duration variable
gen durvar_`gruppo'=0 if a_seq_`gruppo'!=dur_`gruppo' 
replace durvar_`gruppo'=1 if a_seq_`gruppo'==dur_`gruppo' & r_c_`gruppo'==0 & ban_`gruppo' == 0
replace durvar_`gruppo'=0 if a_seq_`gruppo'==dur_`gruppo' & r_c_`gruppo'==1 & ban_`gruppo' == 0

*let sedum=1 if spell is self employment   0 otherwise
gen sedum_`gruppo'=(lm_status_`gruppo'==1)
replace sedum_`gruppo'=. if lm_status_`gruppo'==0

save ".../left_cens_spell_10sample_all_4type_`gruppo'_rev1_2_13Sep2020.dta",replace
log close 
